#define  _CRT_SECURE_NO_WARNINGS

//#include "ObjectPool.h"
//
//int main()
//{
//	TestObjectPool();
//	return 0;
//}

////////////////////////////////////////////////////////////

//#include "ConcurrentAlloc.h"
//
//void Alloc1()
//{
//	for (size_t i = 0; i < 5; ++i)
//	{
//		void* ptr = ConcurrentAlloc(6);
//	}
//}
//
//void Alloc2()
//{
//	for (size_t i = 0; i < 5; ++i)
//	{
//		void* ptr = ConcurrentAlloc(7);
//	}
//}
//
//void TLSTest()
//{
//	std::thread t1(Alloc1);
//	t1.join();
//
//	std::thread t2(Alloc2);
//	t2.join();
//}
//
//void TestConcurrentAlloc1()
//{
//	void* p1 = ConcurrentAlloc(6);
//	void* p2 = ConcurrentAlloc(8);
//	void* p3 = ConcurrentAlloc(1);
//	void* p4 = ConcurrentAlloc(7);
//	void* p5 = ConcurrentAlloc(8);
//
//	std::cout << p1 << std::endl;
//	std::cout << p2 << std::endl;
//	std::cout << p3 << std::endl;
//	std::cout << p4 << std::endl;
//	std::cout << p5 << std::endl;
//}
//
//void TestConcurrentAlloc2()
//{
//	for (size_t i = 0; i < 1024; ++i)
//	{
//		void* p1 = ConcurrentAlloc(16);
//		std::cout << p1 << std::endl;
//	}
//
//	void* p2 = ConcurrentAlloc(8);
//	std::cout << p2 << std::endl;
//}
//
//int main()
//{
//	//TestConcurrentAlloc1();
//	//TestConcurrentAlloc2();
//	//TLSTest();
//
//	return 0;
//}

//////////////////////////////////////////////////

//#include "ConcurrentAlloc.h"
//
//void MultiThreadAlloc1()
//{
//	std::vector<void*> v;
//	for (size_t i = 0; i < 1000; ++i)
//	{
//		void* ptr = ConcurrentAlloc(6);
//		v.push_back(ptr);
//	}
//
//	for (auto e : v)
//	{
//		ConcurrentFree(e);
//	}
//}
//
//void MultiThreadAlloc2()
//{
//	std::vector<void*> v;
//	for (size_t i = 0; i < 1000; ++i)
//	{
//		void* ptr = ConcurrentAlloc(16);
//		v.push_back(ptr);
//	}
//
//	for (auto e : v)
//	{
//		ConcurrentFree(e);
//	}
//}
//
//void TestMultiThread()
//{
//	std::thread t1(MultiThreadAlloc1);
//	std::thread t2(MultiThreadAlloc2);
//
//	t1.join();
//	t2.join();
//}
//
//void BigAlloc()
//{
//	void* p1 = ConcurrentAlloc(257 * 1024);
//	ConcurrentFree(p1);
//
//	void* p2 = ConcurrentAlloc(129 * 8 * 1024);
//	ConcurrentFree(p2);
//}
//
//int main()
//{
//	//TestMultiThread();
//	BigAlloc();
//
//	return 0;
//}